<?php
require 'BaseController.php';
class Admin_ArticleController extends Admin_BaseController{
	private $_identity;
	private $_categoryModel;
	private $_postModel;
	public function init(){
		parent::init();
		$auth = Zend_Auth::getInstance();
		$this->_identity = $auth->getIdentity();
		$this->view->identity = $this->_identity;
		$this->_categoryModel = new Model_Category();
		$this->_postModel = new Model_Post();
	}
	
	public function listAction(){
		$session = new Zend_Session_Namespace();
		$this->view->message = $session->message;
		$session->__unset('message');
		//Đưa danh sách user vào Zend_Paginator để bắt đầu phân trang
        $paginator = Zend_Paginator::factory($this->_postModel->getAllArticles());
        //Số user trên một trang
        $paginator->setItemCountPerPage(20);
        //Số trang được hiện ra để click
        $paginator->setPageRange(5);
        //Lấy trang hiện tại
        $currentPage = $this->getRequest()->getParam('page',1);
        $paginator->setCurrentPageNumber($currentPage);
        
        //Truyền dữ liệu ra view
        $this->view->arrArticles=$paginator;
	}
	
	public function createAction(){
		$this->view->identity = $this->_identity;
		$this->view->headScript()->appendFile($this->view->baseUrl().'/public/plugins/ckeditor/ckeditor.js');
		$this->view->headScript()->appendFile($this->view->baseUrl().'/public/plugins/ckfinder/ckfinder.js');
		$this->view->headLink()->appendStylesheet($this->view->baseUrl().'/public/admin/css/aearticle.css');
		
		$session = new Zend_Session_Namespace();
		
		//kiểm tra có dữ liệu post lên không
		if($this->getRequest()->isPost()){
			//lấy dữ liệu trên form
			$title= $this->getRequest()->getParam('title');
			$summary= $this->getRequest()->getParam('summary');
			$content= $this->getRequest()->getParam('content');
			$slug = $this->getRequest()->getParam('slug');
			$feature_image = $this->getRequest()->getParam('feature_image');
			$created_date = date('Y-m-d', time());
			$user_id = $this->_identity->id;
			$page_title = $this->getRequest()->getParam('page_title');
			$page_description = $this->getRequest()->getParam('page_description');
			$tag = $this->getRequest()->getParam('tag');
			$id = $this->_postModel->insertPost($title, $summary, $content, $created_date, $user_id, $slug, $feature_image, 'article',$page_title, $page_description, $tag);
			if($id){
				$session->message = '<span class="success">Tạo bài viết mới thành công</span>';
				$this->_redirector->gotoRoute(array('id' => $id), 'admin_article_edit');
			}else{
				$this->view->message = '<span class="error">Tạo bài viết mới không thành công';
			}
		}
		
	}
	
	public function editAction(){
		$this->view->identity = $this->_identity;
		$this->view->headScript()->appendFile($this->view->baseUrl().'/public/plugins/ckeditor/ckeditor.js');
		$this->view->headScript()->appendFile($this->view->baseUrl().'/public/plugins/ckfinder/ckfinder.js');
		$this->view->headLink()->appendStylesheet($this->view->baseUrl().'/public/admin/css/aearticle.css');
		//lấy các ngôn ngữ đang được active
		$session = new Zend_Session_Namespace();
		$this->view->message = $session->message;
		$session->__unset('message');

		//lấy article
		$id = $this->getRequest()->getParam('id');
		if(isset($id)){
			$article = $this->_postModel->getPostByID($id);
			$this->view->article = $article;
			//kiểm tra có dữ liệu post lên không
			if($this->getRequest()->isPost()){
				//lấy dữ liệu trên form
				$title= $this->getRequest()->getParam('title');
				$summary= $this->getRequest()->getParam('summary');
				$content= $this->getRequest()->getParam('content');
				$slug = $this->getRequest()->getParam('slug');
				$feature_image = $this->getRequest()->getParam('feature_image');
				$page_title = $this->getRequest()->getParam('page_title');
				$page_description = $this->getRequest()->getParam('page_description');
				$tag = $this->getRequest()->getParam('tag');
				$result = $this->_postModel->updatePost($id, $title, $summary, $content, $slug, $feature_image, $page_title, $page_description, $tag);
				if($result){
					$session->message = '<span class="success">Sửa bài viết thành công</span>';
					$this->_redirector->gotoRoute(array('id'=> $id), 'admin_article_edit');
				}else{
					$this->view->message = '<span class="error">Sửa bài viết không thành công</span>';
				}
				
			}
		}else{
			$this->view->message = '<span class="error">Bài viết này không tồn tại</span>';
		}
	}
	public function deleteAction(){
		$session = new Zend_Session_Namespace();
		if($this->getRequest()->isPost()){
			$id = $this->getRequest()->getParam('ids');
		}else{
			$id = $this->getRequest()->getParam('id');
		}
		if($this->_postModel->deletePost($id)){
			$session->message = '<span class="success">Xóa bài viết thành công</span>';
			
		}else{
			$session->message = '<span class="error">Xóa bài viết không thành công</span>';
		}
		$this->_redirector->gotoRoute(array(), 'admin_article_list');
	}
	
}
?>